/*
 * DppmSpec.h
 *
 *  Created on: 20/01/2014
 *      Author: root
 */


#ifndef DPPMSPEC_H_
#define DPPMSPEC_H_

#include <string.h>

struct Activity{
	int numPreds;
	int* preds;

	int numModes;
 	int* costs;
 	int* times;
};

class DppmSpec{

private:
	int * minCosts;
	int * minTimes;
	int deadline;
	int numAct;
	Activity * acts;

	int defineBoundingVectors();

public:
	DppmSpec(int numAct, int T, int* numPreds, int** Preds, int* numModes, int** ModesCosts, int** ModesTimes);
	int getDeadline();
	int getNumActivities();
	int getActivityNumModes(int act);
	int* getActivityModesCosts(int act);
	int getActivityModeCost(int act, int mode);
	int* getActivityModesTimes(int act);
	int getActivityModeTime(int act, int mode);
	int getActivityNumPreds(int act);
	int* getActivityPreds(int act);
	int getMinCostToEnd(int act);
	int getMinTimeToEnd(int act);
	void Print();
	~DppmSpec();

};

#endif /* DPPMSPEC_H_ */
